CC = g++
CXXFLAGS = -Wall
LDFLAGS = -lxml2 -Wall
IFLAGS = -I ../src

SRC_DIR = ../src
SRC_COMMUN = $(wildcard $(SRC_DIR)/*.cpp)
OBJ_COMMUN = $(SRC_COMMUN:.cpp=.o)
H_COMMUN = $(SRC_COMMUN:.cpp=.h)

EXEC = client
SRC = $(wildcard *.cpp)
OBJ = $(SRC:.cpp=.o)
H = $(SRC:.cpp=.h)

all: src $(EXEC)

src: 
	@(cd $(SRC_DIR) && $(MAKE))


$(EXEC): $(OBJ) $(OBJ_COMMUN) $(H) $(H_COMMUN)
	$(CC) -o $@ $^ $(LDFLAGS) $(IFLAGS)

%.o: %.cpp
	$(CC) -o $@ -c $< $(CXXFLAGS) $(IFLAGS)

.PHONY: clean mrproper

clean:
	(rm -rf *.o && cd $(SRC_DIR) && $(MAKE) $@)

mrproper: clean
	(rm -rf $(EXEC) && cd $(SRC_DIR) && $(MAKE) $@)

